<?php 

class My_Controller extends Zend_Controller_Action {

	public $console;
		
	const SPACE = "' '";
	
    public function init(){
    	 $this->console = Zend_Registry::get('console');
    }
	
	public function preDispatch(){
	    //$this->_helper->layout()->disableLayout();
	    $this->_helper->viewRenderer->setNoRender(true);
	}
	
	public function operation($idParamOrModelClass = '<magic_null>'){
		$cmd = $idParamOrModelClass;
		$rq = $this->getRequest();
		$actionType = $rq->getParam('my_action_type');
		
		if($actionType == 'load'){// load
			return 'load';
		} else { // save
			if($cmd==='<magic_null>'){// bez parametru zwraca po staremu save
				return 'save';
			} else if(is_int($cmd)){// po id (int) 0 rozumiane jako null (czyli insert) 
				return $cmd !== 0 ? //
					'update':'insert'; 
			} else if (is_string($cmd)){ //po parametrze lub struingowym id 
				if($cmd=='' || $cmd=='0'){ // czy jest cokolwiek
					return 'insert';
				} else {
					if(is_numeric($cmd)){// jesli stringowa liczba brana jko id  
						return 'update';	
					} else {
						return $rq->getParam($cmd) == ''? 'insert':'update';	
					}
				}
			} else if (is_object($cmd)){// obiekt modelu -> bo zwykle dostepny a w nim zapisany jest id_field
				return $rq->getParam(Utils::arrayFetch($cmd->info('primary')))== '' ? 'insert':'update';
			} else {
				// tu niepowinno nigdy trafić
				Validation::react('Nie określona operacja');	
			}
		}
	}
		
	public function instance(){
		return Utils::getSetup('zend_instance_owner_id')=='1'?'ccp':'cp';
	}
}